home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr11 / pcv05n10.zip / RECYCL.ZIP / DRAGDROP.BAS < prev    next >
BASIC Source File  |  1992-03-26  |  2KB  |  84 lines

  1. DefInt A-Z
  2.  
  3. Sub Main ()
  4. PM_NOREMOVE = 0
  5. PM_NOYIELD = 2
  6. wRemoveMsg = PM_NOREMOVE Or PM_NOYIELD
  7. Recycler.Show
  8. FixTitle
  9. Handle = Recycler.hwnd
  10. FileNum = -1
  11. DragAcceptFiles Handle, True
  12. Do While DoEvents()
  13.     
  14.  
  15.     x = PeekMessage(NewMessage, Handle, 563, 563, wRemoveMsg)
  16.     If x <> 0 Then
  17.         Screen.Mousepointer = 11
  18.         Recycler.List1.visible = FALSE
  19.         Beep
  20.         x = DragQueryFile(NewMessage.wParam, FileNum, NameOfFile, 128)
  21.             For Counter = 0 To x - 1
  22.                 y = DragQueryFile(NewMessage.wParam, Counter, NameOfFile, 128)
  23.               If IsFileHidden(NameOfFile) = 0 Then
  24.                 N = HideFile(NameOfFile, True)
  25.                 If N = 0 Then
  26.                 Recycler.List1.AddItem NameOfFile
  27.                 Else
  28.                 Fail$ = NameOfFile
  29.                 MsgBox ("Couldn't add " + Fail$): Fail$ = ""
  30.                 End If
  31.                 
  32.                 If Recycler.List1.Listcount = 1 Then Recycler.Icon = LoadPicture("RECFULL.iCO")
  33.              End If
  34.             Next Counter
  35.             Recycler.List1.visible = True
  36.             FixTitle
  37.     dragfinish NewMessage.wParam
  38.     Screen.Mousepointer = 0
  39.    End If
  40. Loop
  41. End Sub
  42.  
  43. Function HideFile (FileToHide$, Hiding)
  44.     If Hiding = True Then plusmin$ = "+":  Else plusmin$ = "-"
  45.     CurPath$ = CurDir$
  46.     N = CheckForDir(FileToHide$)
  47.     If N <> 0 Then HideFile = 1: Exit Function
  48.     HideFile = SetFileHidden(FileToHide$, plusmin$)
  49. End Function
  50.  
  51. Sub FixTitle ()
  52. FixSize
  53. kb& = TotSize / 1024
  54. LI = Recycler.List1.Listcount
  55. Recycler.Label1.Caption = Str$(LI) + " files in Recycler. " + Str$(TotSize) + " bytes"
  56. If LI = 0 Or Recycler.Windowstate <> 1 Then Recycler.Caption = "Recycler": Exit Sub
  57. If LI = 1 Then Recycler.Caption = "Recycler  1-file" + Str$(kb&) + " KB": Exit Sub
  58. Recycler.Caption = "Recycler  " + Str$(LI) + "-files" + Str$(kb&) + " KB"
  59.               
  60.  
  61.  
  62. End Sub
  63.  
  64. '
  65. Sub FixSize ()
  66. TotSize = 0
  67. For x = 0 To Recycler.List1.Listcount - 1
  68.       Temp = FreeFile
  69.       F$ = Recycler.List1.List(x)
  70.       If CheckForDir(F$) <> 0 Then GoTo Skip
  71.       Open Recycler.List1.List(x) For Input As Temp
  72.       TotSize = TotSize + LOF(Temp)
  73.       Close Temp
  74. Skip:
  75.       Next x
  76.       End Sub
  77.  
  78. Function CheckForDir (FileToHide$)
  79.     Searchpath$ = Environ$("PATH")
  80.     Result$ = String$(129, 0)
  81.     CheckForDir = FindFile(FileToHide$, Searchpath$, Result$)
  82. End Function
  83.  
  84.